
Ext.define('proyectos.ProyectoForm', {
    extend: 'Ext.form.Panel',
    alias: 'widget.writerform',
    requires: ['Ext.form.field.Text'],
    initComponent: function(){
        Ext.apply(this, {
            activeRecord: null,
            iconCls: 'icon-proyecto',
            frame: true,
            title: 'Proyectos',
            defaultType: 'textfield',
            bodyPadding: 25,
            fieldDefaults: {
                anchor: '100%',
            },
            items: [{
                fieldLabel: 'Id',
                name: 'id',
                type: 'int',
                hidden: true,
            },{
                fieldLabel: '<b>Nombre</b>',
                name: 'nombre',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
            }, {
                fieldLabel: '<b>Descripcion</b>',
                name: 'descripcion',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
            },{
                fieldLabel: '<b>Estado</b>',
                name: 'estado',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
            },{
                fieldLabel: '<b>Nº Fases</b>',
                name: 'nroFases',
                fieldStyle: 'background-color: transparent; border: none; background-image: none;',
            }],
            dockedItems: [{
                xtype: 'toolbar',
                items: [{
                    iconCls: 'icon-iniciar',
                    text: '<b>Iniciar</b>',
                    hidden: true,
                    itemId: 'iniciar',
                    scope: this,
                    disabled: true,
                    handler: this.onIniciar
                }, {
                    iconCls: 'icon-terminar',
                    text: '<b>Terminar</b>',
                    hidden: true,
                    itemId: 'terminar',
                    scope: this,
                    disabled: true,
                    handler: this.onTerminar
                },{
                    iconCls: 'icon-desarrollo',
                    itemId: 'desarrolladores',
                    text: '<b>Desarrolladores</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onVerDesarroll
                },{
                    iconCls: 'icon-fase',
                    itemId: 'lideres-fase',
                    text: '<b>Lideres de Fase</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onLideresFase
                },{
                    iconCls: 'icon-miembros',
                    itemId: 'ver-miembros',
                    text: '<b>Ver Miembros</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onVerMiembros
                },{}]
            },{
				weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->',{
                    iconCls: 'icon-grafo',
                    itemId: 'grafo',
                    text: '<b>Grafo</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onGrafo
                },{
                    iconCls: 'icon-user-add',
                    itemId: 'asig-desarr',
                    text: '<b>Asignar Desarrolladores</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onDesarrolladores
                },{
                    iconCls: 'icon-miembros',
                    itemId: 'miembros2',
                    text: '<b><font color="red">Miembros</font></b>',
                    hidden: true,
                    scope: this,
                    handler: this.onMiembros2
                },{
                    iconCls: 'icon-tipoItem',
                    itemId: 'tipoItem',
                    text: '<b>TiposItem</b>',
                    hidden: true,
                    scope: this,
                    //disabled: true, 
                    handler: this.onTipoItem
                },{
                    iconCls: 'icon-fase',
                    itemId: 'fase',
                    text: '<b>Fases</b>',
                    hidden: true,
                    scope: this,
                    //disabled: true, 
                    handler: this.onFases
                },{
                    iconCls: 'icon-miembros',
                    itemId: 'miembros',
                    text: '<b>Miembros</b>',
                    hidden: true,
                    scope: this,
                    handler: this.onMiembros
                },{
                    iconCls: 'icon-reset',
                    text: '<b>Reset</b>',
                    scope: this,
                    handler: this.onReset
                }]
            }]
        });
        this.callParent();
    },

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {     
			this.getForm().loadRecord(record);
						
			this.down('#tipoItem').show();			
			
			this.down('#miembros').show();
			this.down('#fase').show();
            this.down('#desarrolladores').hide();
            this.down('#lideres-fase').hide();
            this.down('#asig-desarr').hide();
            this.down('#ver-miembros').hide(); 
            this.down('#miembros2').hide();             
            estado = extraer(this.getForm().getValues(true),'&estado=','&nroFases=')
            
            if (estado != 'Terminado'){
				if(estado == 'Iniciado'){ this.down('#terminar').enable(); this.down('#terminar').show(); this.down('#iniciar').disable(); this.down('#iniciar').hide(); this.down('#grafo').enable();  this.down('#grafo').show(); }
				else { 
					this.down('#iniciar').enable(); this.down('#terminar').disable(); this.down('#grafo').disable ();this.down('#iniciar').show(); this.down('#terminar').hide(); this.down('#grafo').hide ();
					}
			}else { 
					this.down('#iniciar').disable(); this.down('#terminar').disable(); 
					this.down('#iniciar').hide(); this.down('#terminar').hide(); 
					}
			
        } else {
            
            this.down('#iniciar').hide();
            this.down('#terminar').hide();
            this.down('#tipoItem').hide();
            this.down('#grafo').hide();
            this.down('#miembros').hide();
            this.down('#fase').hide();
            this.down('#desarrolladores').hide();
            this.down('#lideres-fase').hide();
            this.down('#asig-desarr').hide();
            this.down('#ver-miembros').hide(); 
            this.down('#miembros2').hide(); 
            this.getForm().reset();
        }
    },

	onFases: function(){
			var form = this.getForm();
			this.fireEvent('ddFases', form.getValues(true));            
	},
	
	onMiembros: function(){
			this.down('#miembros').hide();
			this.down('#miembros2').show(); 
			this.down('#iniciar').hide();
            this.down('#terminar').hide();
            this.down('#tipoItem').hide();
            this.down('#grafo').hide();
            this.down('#ver-miembros').show();
            this.down('#fase').hide();     
            this.down('#desarrolladores').show();
            this.down('#lideres-fase').show();  
            this.down('#asig-desarr').show(); 
	},
	
	onMiembros2: function(){
			this.down('#miembros').show();
			this.down('#miembros2').hide(); 
			if (!this.down('#iniciar').isDisabled()){
				this.down('#iniciar').show();			
			}
			if (!this.down('#terminar').isDisabled()){
				this.down('#terminar').show();			
			}
            this.down('#tipoItem').show();
            if (!this.down('#grafo').isDisabled()){
				this.down('#grafo').show();			
			}
            this.down('#ver-miembros').hide();
            this.down('#fase').show();     
            this.down('#desarrolladores').hide();
            this.down('#lideres-fase').hide(); 
            this.down('#asig-desarr').hide();  
	},	
	
	onVerMiembros: function(){
			var form = this.getForm();
			this.fireEvent('ddMiembros', form.getValues(true));            
	},
	
	onLideresFase: function(){
			var form = this.getForm();
			this.fireEvent('ddLiderF', form.getValues(true));            
	},

	onDesarrolladores: function(){
			var form = this.getForm();
			this.fireEvent('ddDesarr', form.getValues(true));            
	},
	
	onVerDesarroll: function(){
			var form = this.getForm();
			this.fireEvent('ddVerDesarr', form.getValues(true));            
	},
		
	onTipoItem: function(){
			var form = this.getForm();
			this.fireEvent('ddTipoItem', form.getValues(true));            
	},
	onGrafo: function(){
				var form = this.getForm();
				id = extraer(form.getValues(true), 'id=', '&'); nombre = extraer(form.getValues(true), '&nombre=', '&descripcion=');
				  
				var winImagen = Ext.create('widget.window', {
					x:400,
					y: 200,
					resizable   : false,
					iconCls: 'icon-grafo',
					title: 'GRAFO - ' + nombre,
					closable: true,
					bodyStyle: 'background-color: #fff;',
					layout: 'fit',
					items: [{
						border: false
					},img = Ext.create('Ext.Img',{
					  id: 'img2',
					   height :380,
					   width: 560,
					   name: 'imgx',
					   src: 'grafo_proyecto/' + id
					})]
				});
				winImagen.show();       
		},	

    onReset: function(){
        this.setActiveRecord(null);
        this.getForm().reset();
        this.fireEvent('refresh');
    },
    
    onIniciar: function(){	
	        var form = this.getForm();
                    form.submit({                        
                        url: 'iniciarProyecto',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Proyecto iniciado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.fireEvent('refresh');							                       
                        },	scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido iniciar el proyecto', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },
    
    onTerminar: function(){		
    	        var form = this.getForm();
                    form.submit({                        
                        url: 'terminarProyecto',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Proyecto terminado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.fireEvent('refresh');							                       
                        },	scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido terminar el proyecto', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },   
    
});
